home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / Connection.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  4.1 KB  |  162 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.app.BaseApplication;
  4. import java.io.DataInputStream;
  5. import java.io.DataOutputStream;
  6. import java.io.IOException;
  7. import java.net.Socket;
  8.  
  9. class Connection extends Thread {
  10.    public static final String STARTED = "Started";
  11.    protected static final String WHOMEVER = "whomever";
  12.    protected Socket sock;
  13.    // $FF: renamed from: in java.io.DataInputStream
  14.    protected DataInputStream field_0;
  15.    protected DataOutputStream out;
  16.    protected String fromClient = null;
  17.  
  18.    public Connection(Socket var1) {
  19.       this.sock = var1;
  20.  
  21.       try {
  22.          this.out = new DataOutputStream(this.sock.getOutputStream());
  23.          this.field_0 = new DataInputStream(this.sock.getInputStream());
  24.       } catch (IOException var5) {
  25.          try {
  26.             this.sock.close();
  27.          } catch (IOException var4) {
  28.          }
  29.  
  30.          System.err.println(String.valueOf("Exception while getting socket streams: ").concat(String.valueOf(var5)));
  31.          return;
  32.       }
  33.  
  34.       ((Thread)this).setDaemon(true);
  35.       BaseApplication.getApplication().addApplicationListener(new ApplicationAdapter(this));
  36.       this.sendNotification("Started", (String)null, "");
  37.       ((Thread)this).start();
  38.    }
  39.  
  40.    public void run() {
  41.       byte[] var4 = new byte[2048];
  42.  
  43.       try {
  44.          while(true) {
  45.             int var7 = this.field_0.readUnsignedByte();
  46.             int var8 = this.field_0.readUnsignedByte();
  47.             int var9 = this.field_0.readUnsignedByte();
  48.             int var10 = this.field_0.readUnsignedByte();
  49.             int var5 = var10 << 24 | var9 << 16 | var8 << 8 | var7;
  50.             if (var5 == -1 || var5 == 0) {
  51.                break;
  52.             }
  53.  
  54.             String var2 = "";
  55.  
  56.             do {
  57.                int var6 = this.field_0.read(var4, 0, var5);
  58.                String var3 = new String(var4, 0, var6);
  59.                var2 = var2.concat(var3);
  60.                var5 -= var6;
  61.             } while(var5 > 0);
  62.  
  63.             String var11 = this.getAttr(var2, "from");
  64.             if (this.fromClient == null) {
  65.                this.fromClient = var11;
  66.             }
  67.  
  68.             String var12 = this.getAttr(var2, "uri");
  69.             BatchProcessor var13 = new BatchProcessor(var2);
  70.             (new Thread(var13)).start();
  71.             if (var2.indexOf("PrintDiagram") != -1) {
  72.                this.sendNotification("PrintDiagram", var11, var12);
  73.             }
  74.          }
  75.       } catch (IOException var23) {
  76.          System.out.println(var23);
  77.       } finally {
  78.          try {
  79.             this.sock.close();
  80.          } catch (IOException var22) {
  81.          }
  82.  
  83.       }
  84.  
  85.    }
  86.  
  87.    private void sendNotification(String var1, String var2, String var3) {
  88.       if (var2 == null) {
  89.          var2 = "whomever";
  90.       }
  91.  
  92.       String var4 = String.valueOf(String.valueOf(String.valueOf("<?xml version=\"1.0\"?>\r\n<XANotification to = \"").concat(String.valueOf(var2))).concat(String.valueOf("\">\r\n"))).concat(String.valueOf("    "));
  93.       String var5 = "</XANotification>\r\n";
  94.       String var6 = String.valueOf(String.valueOf(" uri = \"").concat(String.valueOf(var3))).concat(String.valueOf("\""));
  95.       String var7 = "";
  96.       byte[] var8 = new byte[2048];
  97.       if (var1.equals("OpenSchema")) {
  98.          var7 = String.valueOf(String.valueOf(String.valueOf(String.valueOf(var4).concat(String.valueOf("<SchemaOpened"))).concat(String.valueOf(var6))).concat(String.valueOf("/>\r\n"))).concat(String.valueOf(var5));
  99.       } else if (!var1.equals("SaveSchema") && !var1.equals("SaveAsSchema")) {
  100.          if (var1.equals("PrintDiagram")) {
  101.             var7 = String.valueOf(String.valueOf(String.valueOf(String.valueOf(var4).concat(String.valueOf("<DiagramPrinted"))).concat(String.valueOf(var6))).concat(String.valueOf("/>\r\n"))).concat(String.valueOf(var5));
  102.          } else if (var1.equals("CloseSchema")) {
  103.             var7 = String.valueOf(String.valueOf(String.valueOf(String.valueOf(var4).concat(String.valueOf("<SchemaClosed"))).concat(String.valueOf(var6))).concat(String.valueOf("/>\r\n"))).concat(String.valueOf(var5));
  104.          } else if (var1.equals("Exit")) {
  105.             var7 = String.valueOf(String.valueOf(var4).concat(String.valueOf("<Exited/>\r\n"))).concat(String.valueOf(var5));
  106.          } else {
  107.             if (!var1.equals("Started")) {
  108.                return;
  109.             }
  110.  
  111.             var7 = String.valueOf(String.valueOf(String.valueOf(String.valueOf(var4).concat(String.valueOf("<"))).concat(String.valueOf(var1))).concat(String.valueOf("/>\r\n"))).concat(String.valueOf(var5));
  112.          }
  113.       } else {
  114.          var7 = String.valueOf(String.valueOf(String.valueOf(String.valueOf(var4).concat(String.valueOf("<SchemaSaved"))).concat(String.valueOf(var6))).concat(String.valueOf("/>\r\n"))).concat(String.valueOf(var5));
  115.       }
  116.  
  117.       int var9 = var7.length();
  118.       var8[0] = (byte)(var9 & 255);
  119.       var8[1] = (byte)((var9 & '\uff00') >> 8);
  120.       var8[2] = (byte)((var9 & 16711680) >> 16);
  121.       var8[3] = (byte)((var9 & -16777216) >> 24);
  122.  
  123.       for(int var10 = 0; var10 < var7.length(); ++var10) {
  124.          var8[4 + var10] = (byte)var7.charAt(var10);
  125.       }
  126.  
  127.       try {
  128.          this.out.write(var8, 0, var7.length() + 4);
  129.          this.out.flush();
  130.       } catch (Exception var12) {
  131.       }
  132.  
  133.    }
  134.  
  135.    String getAttr(String var1, String var2) {
  136.       int var3 = var1.indexOf(var2);
  137.       if (var3 == -1) {
  138.          return "";
  139.       } else {
  140.          String var4 = var1.substring(var3 + 4);
  141.          var3 = var4.indexOf("\"");
  142.          if (var3 == -1) {
  143.             return "";
  144.          } else {
  145.             var4 = var4.substring(var3 + 1);
  146.             var3 = var4.indexOf("\"");
  147.             if (var3 == -1) {
  148.                return "";
  149.             } else {
  150.                var4 = var4.substring(0, var3);
  151.                return var4;
  152.             }
  153.          }
  154.       }
  155.    }
  156.  
  157.    // $FF: synthetic method
  158.    static void access$2000071(Connection var0, String var1, String var2, String var3) {
  159.       var0.sendNotification(var1, var2, var3);
  160.    }
  161. }
  162.